function number_format(number, decimals, dec_point, thousands_sep) {
  /*
   * 参数说明：
   * number：要格式化的数字
   * decimals：保留几位小数
   * dec_point：小数点符号
   * thousands_sep：千分位符号
   * */
  number = (number + '').replace(/[^0-9+-Ee.]/g, '');
  var n = !isFinite(+number) ? 0 : +number,
    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
    sep = typeof thousands_sep === 'undefined' ? ',' : thousands_sep,
    dec = typeof dec_point === 'undefined' ? '.' : dec_point,
    s = '',
    toFixedFix = function(n, prec) {
      var k = Math.pow(10, prec);
      return '' + Math.floor(n * k) / k;
    };
  s = (prec ? toFixedFix(n, prec) : '' + Math.floor(n)).split('.');
  var re = /(-?\d+)(\d{3})/;
  while (re.test(s[0])) {
    s[0] = s[0].replace(re, '$1' + sep + '$2');
  }

  if ((s[1] || '').length < prec) {
    s[1] = s[1] || '';
    s[1] += new Array(prec - s[1].length + 1).join('0');
  }
  return s.join(dec);
}

export const convertNumToStr = (num, decimals = 0) => {
  const result = number_format(num, decimals, '.', ','); //1,234,567.08

  return result;
};

function getNumUnit(num) {
  let convertNum = num;
  let absNum = Math.abs(num);
  let unit = '';
  if (absNum >= 100000000) {
    convertNum = num / 100000000;
    unit = '亿';
  } else if (absNum >= 10000) {
    convertNum = num / 10000;
    unit = '万';
  }
  return { unit, convertNum };
}

export const convertNumToStrWithThousandSeparatorUnitConversion = num => {
  if (num == undefined) {
    return '-';
  }
  let { unit, convertNum } = getNumUnit(num);
  return convertNumToStr(convertNum, 2) + unit;
};

export const convertNumToStrWithUnitConversion = num => {
  if (num == undefined) {
    return '-';
  }
  let { unit, convertNum } = getNumUnit(num);
  convertNum = convertNum.toFixed(2) + unit;

  return convertNum;
};

export const convertNumToStrWithSignSymbol = num => {
  let newNum = num;
  if (typeof num !== 'string') {
    newNum = num.toFixed(2);
  }

  if (newNum.indexOf('-') === -1 && newNum !== '0.00') {
    newNum = '+' + newNum;
  }

  return newNum;
};

export const convertDateToYearMonthDate = dateStr => {
  let newDate = new Date(dateStr);
  let year = newDate.getFullYear();
  let month = newDate.getMonth() + 1;
  let day = newDate.getDate();
  month.length === 1 && (month = '0' + month);
  day.length === 1 && (day = '0' + day);

  return year + '年' + month + '月' + day + '日';
};
